package com.seqb.common.disruptor;


import com.lmax.disruptor.EventHandler;

/**
 * @author lilinshen
 * @title 请填写标题
 * @description 请填写相关描述
 * @date 2020/5/11
 */
public class LongEventHandler implements EventHandler<LongEvent> {

    /**
     * LongEventHandler，Handler就是我拿到这个事件之后该怎么样进行处理，所以这里是
     * 消息的消费者，怎么处理呢，很简单，我处理完这个消息之后呢就记一个数，总共记下来我一共处理了
     * 多少消息了，处理消息的时候默认调用的是onEvent方法，这个方法里面有三个参数，
     * 第一个是你要处理的那个消息，
     * 第二个是你处理的是哪个位置上的消息，
     * 第三个是整体的消息结束没结束，是不是处理完了。
     * 你可以判断他如果是true的话消费者就可以退出了，如果是false的话说明后面还有继续消费。
     */
    public static long count = 0;

    /**
     * @param longEvent 事件
     * @param l         RingBuffer的序号
     * @param b         是否为最后一个元素
     * @throws Exception
     */
    @Override
    public void onEvent(LongEvent longEvent, long l, boolean b) throws Exception {
        count++;
        System.out.println("[" + Thread.currentThread().getName() + "]" + longEvent + "序号" + l);
    }
}
